home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 41
/
Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso
/
Aminet
/
gfx
/
edit
/
AmiCAD_2.07.lha
/
AmiCAD
/
ARexx
/
Nomenclature.AmiCAD
< prev
next >
Wrap
Text File
|
2000-11-22
|
3KB
|
143 lines
/* Nomenclature.AmiCAD
Version 1.00: 21 novembre 2000
$VER: Nomenclature.AmiCAD 1.00 (© R.Florac 21/11/2000)
*/
options results /* indispensable pour récupérer le résultat des macros */
signal on error /* pour l'interception des erreurs */
signal on syntax
port=address()
lf='0a'x
'OBJECTS'
nbo=result
if nbo<1 then do
'MESSAGE("Le document est vide !")'
exit
end
nbc=0
'LOCK:TITLE("Recherche des composants...")'
do i=1 to nbo
'TYPE('i')' /* Composant ? */
if result=1 then do
'PARTNAME('i')' /* Nom du composant ? */
comp=result
if comp~="ALIMENTATION" & comp~="MASSE" & comp~="MASSE2" & comp~="CONNEXION SIMPLE" & comp~="CONNEXION DOUBLE" & comp~="Flèche" then do
if comp="RÉSISTANCE" | left(comp,12)="CONDENSATEUR" then do
'GETVAL('i')'
valeur=result
if valeur>0 then do
'READTEXT('valeur')'
valeur=result
if right(valeur,1)='' then valeur=left(valeur,length(valeur)-1)
comp=comp||' '||valeur
end
end
else if left(comp,10)="TRANSISTOR" then do
'GETVAL('i')'
valeur=result
if valeur>0 then do
'READTEXT('valeur')'
comp="TRANSISTOR "||result
end
end
else if left(comp,5)="DIODE" then do
'GETVAL('i')'
valeur=result
if valeur>0 then do
'READTEXT('valeur')'
comp="DIODE "||result
end
end
else if left(comp,7)="BORNIER" then do
comp="BORNIER"
end
else if left(comp,13)="POTENTIOMÈTRE" then do
'GETVAL('i')'
valeur=result
if valeur>0 then do
'READTEXT('valeur')'
valeur=result
if right(valeur,1)='' then valeur=left(valeur,length(valeur)-1)
comp="POTENTIOMÈTRE "||valeur
end
end
else if left(comp,6)~="BOUTON" & left(comp,12)~="INTERRUPTEUR" & left(comp,7)~="CONTACT" then do
'GETVAL('i')'
valeur=result
if valeur>0 then do
'READTEXT('valeur')'
comp=result
end
end
nouveau=1
do j=0 to nbc
if comp.j=comp then do
nbcomp.j=nbcomp.j+1
nouveau=0
leave j
end
end
if nouveau=1 then do /* Nouveau composant ? */
comp.nbc=comp
objet.nbc=i
nbcomp.nbc=1
nbc=nbc+1
end
end
end
end
if nbc>0 then do
'TITLE("Traitement des données...")'
do i=0 to nbc-1 /* Calcul du nombre de circuits nécessaires */
'GETDEVS(PARTNAME('objet.i'))'
j=result
if j>0 then do
nbcomp.i=(nbcomp.i+j-1)%j
end
end
comps='"'
do i=0 to nbc-1
comps=comps||comp.i ':' nbcomp.i
if i<nbc-1 then comps=comps||lf
end
'TITLE(""):REQUEST("Sauver cette liste ?"+CHR(10)+'comps'")'
if result>0 then do
'REQFILE("Fichier nomenclature ?","Travail:Texte/ASCII",FILEPART("")+".Liste")'
fichier=result
if fichier~="" then do
'LOCK'
if ~open(file, fichier, 'W') then exit
do i=0 to nbc-1
writeln(file,comp.i||' : '||nbcomp.i)
end
close(file)
address command
'sort' '"'fichier'"' 'RAM:FichierTrié'
'copy' 'RAM:FichierTrié' '"'fichier'"'
'delete' 'RAM:FichierTrié'
address(port)
'MESSAGE("Sauvegarde terminée"):UNLOCK'
end
end
end
else 'MESSAGE("Aucun composant n''a été trouvé")'
'TITLE("")'
exit
/* Traitement des erreurs, interruption du programme */
syntax:
erreur=RC
address(port)
'MESSAGE("Script Nomenclature.AmiCAD"+CHR(10)+"Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
exit
error:
address(port)
'MESSAGE("Script Nomenclature.AmiCAD"+CHR(10)+"Erreur en ligne 'SIGL'")'
exit